package zhai.docking.alipay.domain.base.alipay;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import zhai.docking.alipay.constant.AlipayConstant;

/**
 * @author Created by 翟凤玺
 * @package zhai.docking.alipay.domain.base.alipay
 * @project-name zhai-docking-alipay
 * @description 基础-支付宝-如意IOT设备 设备绑定接口 入参
 * @create-datetime 2021/1/18 10:02
 */
@Data
public class BaseAlipayRuyiIotBindIn {

    @ApiModelProperty(value = "MINI_APP", required = true)
    @JSONField(name = "app_type")
    private String appType = AlipayConstant.IOT_RUYI_APP_TYPE;

    @ApiModelProperty(value = "RUYI_LITE")
    @JSONField(name = "mini_app_id")
    private String miniAppId = AlipayConstant.IOT_RUYI_MINI_APP_ID;

    @ApiModelProperty(value = "应用ID，目前暂不使用，不要填")
    @JSONField(name = "application_id")
    private String applicationId;

    @ApiModelProperty(value = "请填写“SN”", required = true)
    @JSONField(name = "device_id_type")
    private String deviceIdType;

    @ApiModelProperty(value = "device_id_type填写了“SN”则可选")
    @JSONField(name = "biz_tid")
    private String bizTid;

    @ApiModelProperty(value = "device_id_type填写了“SN”则必填,设备供应商ID，请填写“201901111100635561”")
    @JSONField(name = "supplier_id")
    private String supplierId;

    @ApiModelProperty(value = "device_id_type填写了“SN”则必填,请填写设备的SN")
    @JSONField(name = "device_sn")
    private String deviceSn;

    @ApiModelProperty(value = "受理商户的ISV在支付宝的pid", required = true)
    @JSONField(name = "source")
    private String source = AlipayConstant.IOT_RUYI_ISV_PID;

    @ApiModelProperty(value = "商户编号，由ISV定义，需要保证在ISV下唯一", required = true)
    @JSONField(name = "external_id")
    private String externalId;

    @ApiModelProperty(value = "区分商户ID类型，直连商户填写direct，间连商户填写indirect", required = true)
    @JSONField(name = "merchant_id_type")
    private String merchantIdType;

    @ApiModelProperty(value = "商户角色id。对于直连开店场景，填写商户pid；对于间连开店场景，填写商户smid", required = true)
    @JSONField(name = "merchant_id")
    private String merchantId;

    @ApiModelProperty(value = "店铺ID", required = true)
    @JSONField(name = "shop_id")
    private String shopId;

    @ApiModelProperty(value = "外部门店id")
    @JSONField(name = "external_shop_id")
    private String externalShopId;

    @ApiModelProperty(value = "merchant_id_type为间连indirect时，商户smid已升级到M4等级，关联的pid")
    @JSONField(name = "pid")
    private String pid;

    @ApiModelProperty(value = "isv应用id，isv的标识；用于标识ISV身份", required = true)
    @JSONField(name = "spi_app_id")
    private String spiAppId;

    @ApiModelProperty(value = "isv内部唯一标识商户、商户门店等字段信息;可作为额外ISV自主对接的扩展字段使用", required = true)
    @JSONField(name = "terminal_bind_info")
    private String terminalBindInfo;
}
